﻿using System;
using System.Collections.Generic;

namespace Sustainalytics.Entities.RiskRatings
{
    public class RiskRatingBenchmark : IEntity
    {
        public Guid Id { get; set; }
        public double MarketCapMin { get; set; }
        public double MarketCapMax { get; set; }
        public CompanyBenchmark CompanyBenchmark { get; set; }
        public IEnumerable<MaterialEsgIssuesBenchmark> MaterialEsgIssueBenchmarks { get; set; }
    }

    public class CompanyBenchmark : BenchmarkBase
    {
        public List<RiskRatingPeer> PeersList { get; set; }
    }

    public class MaterialEsgIssuesBenchmark : BenchmarkBase
    {
        public int MeiExternalId { get; set; }
        public string MeiName { get; set; }
        public double MarketCapMin { get; set; }
        public double MarketCapMax { get; set; }
        public List<RiskRatingPeer> PeersList { get; set; }
    }

    public class BenchmarkBase
    {
        public RiskRatingRelativePerformance UniversePerformanceRisk { get; set; }
        public RiskRatingRelativePerformance IndustryPerformanceRisk { get; set; }
        public RiskRatingRelativePerformance SubIndustryPerformanceRisk { get; set; }
        public RiskRatingRelativePerformance UniversePerformanceExposure { get; set; }
        public RiskRatingRelativePerformance IndustryPerformanceExposure { get; set; }
        public RiskRatingRelativePerformance SubIndustryPerformanceExposure { get; set; }
        public RiskRatingRelativePerformance UniversePerformanceManagement { get; set; }
        public RiskRatingRelativePerformance IndustryPerformanceManagement { get; set; }
        public RiskRatingRelativePerformance SubIndustryPerformanceManagement { get; set; }
    }
}
